Assistive technology (AT) products exist to help computer users who may have physical or cognitive difficulties, impairments, or disabilities in areas of learning, communication and access to information contained in and presented by computer software. Assistive technology products can include hardware and software products (e.g., screen readers and voice recognition products) that provide accessibility to computers. For example, a user with vision impairment may utilize a screen reader to help the user to understand and work with software applications, such as a productivity application. The user may utilize the screen reader to assist with authoring a document using a productivity application. For example, the screen reader may echo back recognized text as it appears on the user's screen to help the user to ensure correctness, or may notify the user when certain errors or changes in the document are detected.
User Interface Automation (UIA) provides programmatic access to user interface (UI) elements of a provider application, such as a productivity application, to a client application, such as an assistive technology application. For example, UIA provides programmatic access to text and to metadata about the text, enabling an assistive technology application to read the text and to explore display characteristics associated with the text. Further, UIA supports an event model that allows a provider application to notify a client application when changes occur to a UI element, such as the text. A change may or may not be relevant to the user using assistive technology. As can be appreciated, providing notifications of events that are not relevant to the user can be disruptive to the user.